'''
 nonlocal、global使用
 nonlocal: 声明外部函数的局部变量（如果要修改外部函数的局部变量，需要用该关键字声明）
 global: 声明全局变量（如果函数内部需要修改外部定义的全局变量，需要先用该关键字声明）
'''


# nonlocal

def outer():
    a = 10

    def inner():
        nonlocal a
        print(a)  # 可以直接使用外部函数声明的局部变量
        a = 20  # 如果要修改外部函数声明的局部变量，需要先用nonlocal定义

    inner()
    print(a)


outer()


###################
# global

x = 10


def func():
    global x
    print(x)  # 可以直接使用全局变量
    x = 20  # 如果要修改全局变量，需要先用global定义


func()
print(x)
